package com.wuzao.dataStructure.arrayTest;

import org.junit.Test;

import java.util.Arrays;

public class ArrayTest {
    // 问题一：定义相关
    @Test
    public void defineArrayTest(){
        // 1、数组 array {5, 2, 8, 3, 1}
        int array[] =  {5, 2, 8, 3, 1};
        // 打印数组
        System.out.println(Arrays.toString(array));

        // 2、定义里头都是 int 最大值的数组
        int maxIntArray[] = new int[3];
        Arrays.fill(maxIntArray, Integer.MAX_VALUE);
        System.out.println(Arrays.toString(maxIntArray));

        // 3、 复制数组
        int[] copiedArray = Arrays.copyOf(array, array.length);
        System.out.println("Copied array: " + Arrays.toString(copiedArray));

        // 4、 复制数组的一部分
        int[] partialCopy = Arrays.copyOfRange(array, 1, 4);
        System.out.println("Partial copy: " + Arrays.toString(partialCopy));

        // 5、 二分查找（需要排序的数组），找到时，会返回下标，找不到则会返回最近的
        int[] sortedNumbers = {1, 2, 3, 4, 5};
        int index = Arrays.binarySearch(sortedNumbers, 3);
        System.out.println("Index of 3: " + index);

        // 6、这里 只能用于 类
        String[] words = {"Apple", "Banana", "Cherry"};
        System.out.println("List view: " + Arrays.asList(words));

        // 7、获取最大值
        System.out.println("get max of array");
        int max = Arrays.stream(array).max().getAsInt();
        System.out.println(max);

        System.out.println("get sum of array");
        int sum = Arrays.stream(array).sum();
        System.out.println(sum);
    }
}
